/**
 * 提供 genMessage方法 获取指定文件夹下所有 对象
 * basic:{ login: 'login' }
 * basic2:{ login: 'login' }
 */

import { set } from 'lodash-es'

/**
 * langs -- 存放 语言的 所有文件
 * prefix -- 前缀 生成的对象最外键 = prefix 文件夹内文件
 * en文件夹内 -- basic:{ login: 'login' }
 */
export function genMessage(langs, prefix = 'lang') {
	const obj = {}

	Object.keys(langs).forEach(key => {
		const langFileModule = langs[key].default
		let fileName = key.replace(`./${prefix}/`, '').replace(/^\.\//, '')
		const lastIndex = fileName.lastIndexOf('.')
		fileName = fileName.substring(0, lastIndex)
		const keyList = fileName.split('/')
		const moduleName = keyList.shift()
		const objKey = keyList.join('.')

		if (moduleName) {
			if (objKey) {
				// npm i lodash-es
				// set(object, path, value)
				set(obj, moduleName, obj[moduleName] || {})
				set(obj[moduleName], objKey, langFileModule)
			} else {
				set(obj, moduleName, langFileModule || {})
			}
		}
	})
	return obj
}
